MAYBE 5.066
H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/empty.hs
H-Termination of the given Haskell-Program with start terms could not be shown:
↳ HASKELL
↳ IFR
mainModule Main
| (((^) :: Float -> Int -> Float) :: Float -> Int -> Float) |
module Main where
If Reductions:
The following If expression
if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero
is transformed to
primDivNatS0 | x y True | = Succ (primDivNatS (primMinusNatS x y) (Succ y)) |
primDivNatS0 | x y False | = Zero |
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
mainModule Main
| (((^) :: Float -> Int -> Float) :: Float -> Int -> Float) |
module Main where
Replaced joker patterns by fresh variables and removed binding patterns.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
mainModule Main
| (((^) :: Float -> Int -> Float) :: Float -> Int -> Float) |
module Main where
Cond Reductions:
The following Function with conditions
is transformed to
g1 | x n True | = g (x * x) (n `quot` 2) |
g1 | x n False | = g0 x n otherwise |
g0 | x n True | = f x (n - 1) (x * y) |
The following Function with conditions
is transformed to
f | vv yu y | = f4 vv yu y |
f | x n y | = f0 x n y |
f0 | x n y | =
g x n |
where | |
|
g0 | x n True | = f x (n - 1) (x * y) |
|
|
g1 | x n True | = g (x * x) (n `quot` 2) |
g1 | x n False | = g0 x n otherwise |
|
| |
|
f3 | True vv yu y | = y |
f3 | yv yw yx yy | = f0 yw yx yy |
f4 | vv yu y | = f3 (yu == 0) vv yu y |
f4 | yz zu zv | = f0 yz zu zv |
The following Function with conditions
^ | x 0 | = 1 |
^ | x n | |
^ | vw vx | = error [] |
is transformed to
^ | x zy | = pr4 x zy |
^ | x n | = pr2 x n |
^ | vw vx | = pr0 vw vx |
pr2 | x n | =
pr1 x n (n > 0) |
where |
f | vv yu y | = f4 vv yu y |
f | x n y | = f0 x n y |
|
|
f0 | x n y | =
g x n |
where | |
|
g0 | x n True | = f x (n - 1) (x * y) |
|
|
g1 | x n True | = g (x * x) (n `quot` 2) |
g1 | x n False | = g0 x n otherwise |
|
| |
|
|
|
f3 | True vv yu y | = y |
f3 | yv yw yx yy | = f0 yw yx yy |
|
|
f4 | vv yu y | = f3 (yu == 0) vv yu y |
f4 | yz zu zv | = f0 yz zu zv |
|
|
pr1 | x n True | = f x (n - 1) x |
pr1 | x n False | = pr0 x n |
|
|
pr2 | zw zx | = pr0 zw zx |
pr3 | True x zy | = 1 |
pr3 | zz vuu vuv | = pr2 vuu vuv |
pr4 | x zy | = pr3 (zy == 0) x zy |
pr4 | vuw vux | = pr2 vuw vux |
The following Function with conditions
is transformed to
undefined0 | True | = undefined |
undefined1 | | = undefined0 False |
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
mainModule Main
| (((^) :: Float -> Int -> Float) :: Float -> Int -> Float) |
module Main where
Let/Where Reductions:
The bindings of the following Let/Where expression
pr1 x n (n > 0) |
where |
f | vv yu y | = f4 vv yu y |
f | x n y | = f0 x n y |
|
|
f0 | x n y | =
g x n |
where | |
|
g0 | x n True | = f x (n - 1) (x * y) |
|
|
g1 | x n True | = g (x * x) (n `quot` 2) |
g1 | x n False | = g0 x n otherwise |
|
| |
|
|
|
f3 | True vv yu y | = y |
f3 | yv yw yx yy | = f0 yw yx yy |
|
|
f4 | vv yu y | = f3 (yu == 0) vv yu y |
f4 | yz zu zv | = f0 yz zu zv |
|
|
pr1 | x n True | = f x (n - 1) x |
pr1 | x n False | = pr0 x n |
|
are unpacked to the following functions on top level
pr2F3 | True vv yu y | = y |
pr2F3 | yv yw yx yy | = pr2F0 yw yx yy |
pr2Pr1 | x n True | = pr2F x (n - 1) x |
pr2Pr1 | x n False | = pr0 x n |
pr2F0 | x n y | = pr2F0G y x n |
pr2F | vv yu y | = pr2F4 vv yu y |
pr2F | x n y | = pr2F0 x n y |
pr2F4 | vv yu y | = pr2F3 (yu == 0) vv yu y |
pr2F4 | yz zu zv | = pr2F0 yz zu zv |
The bindings of the following Let/Where expression
g x n |
where | |
|
g0 | x n True | = f x (n - 1) (x * y) |
|
|
g1 | x n True | = g (x * x) (n `quot` 2) |
g1 | x n False | = g0 x n otherwise |
|
| |
are unpacked to the following functions on top level
pr2F0G0 | vuy x n True | = pr2F x (n - 1) (x * vuy) |
pr2F0G | vuy x n | = pr2F0G2 vuy x n |
pr2F0G1 | vuy x n True | = pr2F0G vuy (x * x) (n `quot` 2) |
pr2F0G1 | vuy x n False | = pr2F0G0 vuy x n otherwise |
pr2F0G2 | vuy x n | = pr2F0G1 vuy x n (even n) |
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
mainModule Main
| (((^) :: Float -> Int -> Float) :: Float -> Int -> Float) |
module Main where
Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ Narrow
mainModule Main
| ((^) :: Float -> Int -> Float) |
module Main where
Haskell To QDPs
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_primDivNatS(Succ(Succ(vuz5400000))) → new_primDivNatS(vuz5400000)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primDivNatS(Succ(Succ(vuz5400000))) → new_primDivNatS(vuz5400000)
The graph contains the following edges 1 > 1
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_primPlusNat(Succ(vuz5000), Succ(vuz17000)) → new_primPlusNat(vuz5000, vuz17000)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primPlusNat(Succ(vuz5000), Succ(vuz17000)) → new_primPlusNat(vuz5000, vuz17000)
The graph contains the following edges 1 > 1, 2 > 2
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_primMulNat(Succ(vuz4000), Succ(vuz1700)) → new_primMulNat(vuz4000, Succ(vuz1700))
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primMulNat(Succ(vuz4000), Succ(vuz1700)) → new_primMulNat(vuz4000, Succ(vuz1700))
The graph contains the following edges 1 > 1, 2 >= 2
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
new_pr2F3(Succ(vuz840), vuz85, vuz86, bb) → new_pr2F0G1(vuz85, vuz86, vuz840, Succ(vuz840), bb)
new_pr2F0G12(vuz52, vuz53, bc) → new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS1, Succ(new_primDivNatS1), bc)
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Zero), ba) → new_pr2F3(vuz90, vuz88, new_sr(vuz88, vuz89, ba), ba)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Succ(vuz54000))), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS0(vuz54000), Succ(new_primDivNatS0(vuz54000)), bc)
new_pr2F0G10(vuz52, vuz53, Zero, bc) → new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc)
new_pr2F0G11(vuz64, vuz65, vuz66, Zero, bd) → new_pr2F0G10(vuz64, new_sr3(vuz65, bd), Succ(vuz66), bd)
new_pr2F0G1(vuz88, vuz89, vuz90, Zero, ba) → new_pr2F0G10(new_sr0(vuz88, vuz89, ba), vuz88, Succ(vuz90), ba)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
new_pr2F0G10(vuz52, vuz53, Succ(Zero), bc) → new_pr2F0G12(vuz52, vuz53, bc)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Zero), bd) → new_pr2F3(vuz66, new_sr2(vuz65, bd), vuz64, bd)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr9(vuz13, vuz37, ca) → error([])
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr1(vuz53, app(ty_Ratio, bh)) → new_sr4(vuz53, bh)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_primPlusNat1(Zero, Zero) → Zero
new_sr1(vuz53, ty_Float) → new_sr6(vuz53)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_primDivNatS1 → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr1(vuz53, ty_Double) → new_sr8(vuz53)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr10(vuz41, vuz17) → error([])
new_primMulNat0(Zero, Zero) → Zero
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr12(vuz38, vuz17) → error([])
new_sr1(vuz53, ty_Integer) → new_sr5(vuz53)
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_primDivNatS0(Zero) → Zero
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr1(vuz53, ty_Int) → new_sr7(vuz53)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_sr1(x0, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_sr1(x0, ty_Double)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_sr1(x0, app(ty_Ratio, x1))
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr1(x0, ty_Integer)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr1(x0, ty_Float)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 2 SCCs with 2 less nodes.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G10(vuz52, vuz53, Zero, bc) → new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr9(vuz13, vuz37, ca) → error([])
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr1(vuz53, app(ty_Ratio, bh)) → new_sr4(vuz53, bh)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_primPlusNat1(Zero, Zero) → Zero
new_sr1(vuz53, ty_Float) → new_sr6(vuz53)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_primDivNatS1 → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr1(vuz53, ty_Double) → new_sr8(vuz53)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr10(vuz41, vuz17) → error([])
new_primMulNat0(Zero, Zero) → Zero
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr12(vuz38, vuz17) → error([])
new_sr1(vuz53, ty_Integer) → new_sr5(vuz53)
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_primDivNatS0(Zero) → Zero
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr1(vuz53, ty_Int) → new_sr7(vuz53)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_sr1(x0, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_sr1(x0, ty_Double)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_sr1(x0, app(ty_Ratio, x1))
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr1(x0, ty_Integer)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr1(x0, ty_Float)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G10(vuz52, vuz53, Zero, bc) → new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc)
The TRS R consists of the following rules:
new_sr1(vuz53, app(ty_Ratio, bh)) → new_sr4(vuz53, bh)
new_sr1(vuz53, ty_Float) → new_sr6(vuz53)
new_sr1(vuz53, ty_Double) → new_sr8(vuz53)
new_sr1(vuz53, ty_Integer) → new_sr5(vuz53)
new_sr1(vuz53, ty_Int) → new_sr7(vuz53)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr12(vuz38, vuz17) → error([])
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr10(vuz41, vuz17) → error([])
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr9(vuz13, vuz37, ca) → error([])
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_sr1(x0, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_sr1(x0, ty_Double)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_sr1(x0, app(ty_Ratio, x1))
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr1(x0, ty_Integer)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr1(x0, ty_Float)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr(x0, x1, ty_Float)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr2(x0, ty_Double)
new_sr(x0, x1, ty_Integer)
new_sr3(x0, ty_Double)
new_sr3(x0, ty_Int)
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_sr2(x0, app(ty_Ratio, x1))
new_sr(x0, x1, app(ty_Ratio, x2))
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G10(vuz52, vuz53, Zero, bc) → new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc)
The TRS R consists of the following rules:
new_sr1(vuz53, app(ty_Ratio, bh)) → new_sr4(vuz53, bh)
new_sr1(vuz53, ty_Float) → new_sr6(vuz53)
new_sr1(vuz53, ty_Double) → new_sr8(vuz53)
new_sr1(vuz53, ty_Integer) → new_sr5(vuz53)
new_sr1(vuz53, ty_Int) → new_sr7(vuz53)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr12(vuz38, vuz17) → error([])
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr10(vuz41, vuz17) → error([])
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr9(vuz13, vuz37, ca) → error([])
The set Q consists of the following terms:
new_sr1(x0, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_sr1(x0, ty_Double)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr7(x0)
new_sr6(x0)
new_sr9(x0, x1, x2)
new_sr8(x0)
new_sr11(Pos(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Zero)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr1(x0, app(ty_Ratio, x1))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_primPlusNat0(Succ(x0), x1)
new_sr1(x0, ty_Integer)
new_sr4(x0, x1)
new_sr1(x0, ty_Float)
new_sr5(x0)
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
We have to consider all minimal (P,Q,R)-chains.
We use the modular non-overlap check [17] to decrease Q to the empty set.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ NonTerminationProof
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G10(vuz52, vuz53, Zero, bc) → new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc)
The TRS R consists of the following rules:
new_sr1(vuz53, app(ty_Ratio, bh)) → new_sr4(vuz53, bh)
new_sr1(vuz53, ty_Float) → new_sr6(vuz53)
new_sr1(vuz53, ty_Double) → new_sr8(vuz53)
new_sr1(vuz53, ty_Integer) → new_sr5(vuz53)
new_sr1(vuz53, ty_Int) → new_sr7(vuz53)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr12(vuz38, vuz17) → error([])
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr10(vuz41, vuz17) → error([])
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr9(vuz13, vuz37, ca) → error([])
Q is empty.
We have to consider all (P,Q,R)-chains.
We used the non-termination processor [17] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.
The TRS P consists of the following rules:
new_pr2F0G10(vuz52, vuz53, Zero, bc) → new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc)
The TRS R consists of the following rules:
new_sr1(vuz53, app(ty_Ratio, bh)) → new_sr4(vuz53, bh)
new_sr1(vuz53, ty_Float) → new_sr6(vuz53)
new_sr1(vuz53, ty_Double) → new_sr8(vuz53)
new_sr1(vuz53, ty_Integer) → new_sr5(vuz53)
new_sr1(vuz53, ty_Int) → new_sr7(vuz53)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr12(vuz38, vuz17) → error([])
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr10(vuz41, vuz17) → error([])
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr9(vuz13, vuz37, ca) → error([])
s = new_pr2F0G10(vuz52, vuz53, Zero, bc) evaluates to t =new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc)
Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
- Matcher: [vuz53 / new_sr1(vuz53, bc)]
- Semiunifier: [ ]
Rewriting sequence
The DP semiunifies directly so there is only one rewrite step from new_pr2F0G10(vuz52, vuz53, Zero, bc) to new_pr2F0G10(vuz52, new_sr1(vuz53, bc), Zero, bc).
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
new_pr2F3(Succ(vuz840), vuz85, vuz86, bb) → new_pr2F0G1(vuz85, vuz86, vuz840, Succ(vuz840), bb)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS1, Succ(new_primDivNatS1), bc)
new_pr2F0G11(vuz64, vuz65, vuz66, Zero, bd) → new_pr2F0G10(vuz64, new_sr3(vuz65, bd), Succ(vuz66), bd)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Succ(vuz54000))), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS0(vuz54000), Succ(new_primDivNatS0(vuz54000)), bc)
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Zero), ba) → new_pr2F3(vuz90, vuz88, new_sr(vuz88, vuz89, ba), ba)
new_pr2F0G1(vuz88, vuz89, vuz90, Zero, ba) → new_pr2F0G10(new_sr0(vuz88, vuz89, ba), vuz88, Succ(vuz90), ba)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Zero), bd) → new_pr2F3(vuz66, new_sr2(vuz65, bd), vuz64, bd)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr9(vuz13, vuz37, ca) → error([])
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr1(vuz53, app(ty_Ratio, bh)) → new_sr4(vuz53, bh)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_primPlusNat1(Zero, Zero) → Zero
new_sr1(vuz53, ty_Float) → new_sr6(vuz53)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_primDivNatS1 → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr1(vuz53, ty_Double) → new_sr8(vuz53)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr10(vuz41, vuz17) → error([])
new_primMulNat0(Zero, Zero) → Zero
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr12(vuz38, vuz17) → error([])
new_sr1(vuz53, ty_Integer) → new_sr5(vuz53)
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_primDivNatS0(Zero) → Zero
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr1(vuz53, ty_Int) → new_sr7(vuz53)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_sr1(x0, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_sr1(x0, ty_Double)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_sr1(x0, app(ty_Ratio, x1))
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr1(x0, ty_Integer)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr1(x0, ty_Float)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
new_pr2F3(Succ(vuz840), vuz85, vuz86, bb) → new_pr2F0G1(vuz85, vuz86, vuz840, Succ(vuz840), bb)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS1, Succ(new_primDivNatS1), bc)
new_pr2F0G11(vuz64, vuz65, vuz66, Zero, bd) → new_pr2F0G10(vuz64, new_sr3(vuz65, bd), Succ(vuz66), bd)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Succ(vuz54000))), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS0(vuz54000), Succ(new_primDivNatS0(vuz54000)), bc)
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Zero), ba) → new_pr2F3(vuz90, vuz88, new_sr(vuz88, vuz89, ba), ba)
new_pr2F0G1(vuz88, vuz89, vuz90, Zero, ba) → new_pr2F0G10(new_sr0(vuz88, vuz89, ba), vuz88, Succ(vuz90), ba)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Zero), bd) → new_pr2F3(vuz66, new_sr2(vuz65, bd), vuz64, bd)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr9(vuz13, vuz37, ca) → error([])
new_sr10(vuz41, vuz17) → error([])
new_sr12(vuz38, vuz17) → error([])
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_primDivNatS0(Zero) → Zero
new_primDivNatS1 → Zero
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_sr1(x0, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_sr1(x0, ty_Double)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_sr1(x0, app(ty_Ratio, x1))
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr1(x0, ty_Integer)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr1(x0, ty_Float)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
new_sr1(x0, ty_Int)
new_sr1(x0, ty_Double)
new_sr1(x0, app(ty_Ratio, x1))
new_sr1(x0, ty_Integer)
new_sr1(x0, ty_Float)
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
new_pr2F3(Succ(vuz840), vuz85, vuz86, bb) → new_pr2F0G1(vuz85, vuz86, vuz840, Succ(vuz840), bb)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS1, Succ(new_primDivNatS1), bc)
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Zero), ba) → new_pr2F3(vuz90, vuz88, new_sr(vuz88, vuz89, ba), ba)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Succ(vuz54000))), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS0(vuz54000), Succ(new_primDivNatS0(vuz54000)), bc)
new_pr2F0G11(vuz64, vuz65, vuz66, Zero, bd) → new_pr2F0G10(vuz64, new_sr3(vuz65, bd), Succ(vuz66), bd)
new_pr2F0G1(vuz88, vuz89, vuz90, Zero, ba) → new_pr2F0G10(new_sr0(vuz88, vuz89, ba), vuz88, Succ(vuz90), ba)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Zero), bd) → new_pr2F3(vuz66, new_sr2(vuz65, bd), vuz64, bd)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr9(vuz13, vuz37, ca) → error([])
new_sr10(vuz41, vuz17) → error([])
new_sr12(vuz38, vuz17) → error([])
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_primDivNatS0(Zero) → Zero
new_primDivNatS1 → Zero
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS1, Succ(new_primDivNatS1), bc) at position [2] we obtained the following new rules:
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, Zero, Succ(new_primDivNatS1), bc)
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
new_pr2F3(Succ(vuz840), vuz85, vuz86, bb) → new_pr2F0G1(vuz85, vuz86, vuz840, Succ(vuz840), bb)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, Zero, Succ(new_primDivNatS1), bc)
new_pr2F0G11(vuz64, vuz65, vuz66, Zero, bd) → new_pr2F0G10(vuz64, new_sr3(vuz65, bd), Succ(vuz66), bd)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Succ(vuz54000))), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS0(vuz54000), Succ(new_primDivNatS0(vuz54000)), bc)
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Zero), ba) → new_pr2F3(vuz90, vuz88, new_sr(vuz88, vuz89, ba), ba)
new_pr2F0G1(vuz88, vuz89, vuz90, Zero, ba) → new_pr2F0G10(new_sr0(vuz88, vuz89, ba), vuz88, Succ(vuz90), ba)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Zero), bd) → new_pr2F3(vuz66, new_sr2(vuz65, bd), vuz64, bd)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr9(vuz13, vuz37, ca) → error([])
new_sr10(vuz41, vuz17) → error([])
new_sr12(vuz38, vuz17) → error([])
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_primDivNatS0(Zero) → Zero
new_primDivNatS1 → Zero
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, Zero, Succ(new_primDivNatS1), bc) at position [3,0] we obtained the following new rules:
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, Zero, Succ(Zero), bc)
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
new_pr2F3(Succ(vuz840), vuz85, vuz86, bb) → new_pr2F0G1(vuz85, vuz86, vuz840, Succ(vuz840), bb)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, Zero, Succ(Zero), bc)
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Zero), ba) → new_pr2F3(vuz90, vuz88, new_sr(vuz88, vuz89, ba), ba)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Succ(vuz54000))), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS0(vuz54000), Succ(new_primDivNatS0(vuz54000)), bc)
new_pr2F0G11(vuz64, vuz65, vuz66, Zero, bd) → new_pr2F0G10(vuz64, new_sr3(vuz65, bd), Succ(vuz66), bd)
new_pr2F0G1(vuz88, vuz89, vuz90, Zero, ba) → new_pr2F0G10(new_sr0(vuz88, vuz89, ba), vuz88, Succ(vuz90), ba)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Zero), bd) → new_pr2F3(vuz66, new_sr2(vuz65, bd), vuz64, bd)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr9(vuz13, vuz37, ca) → error([])
new_sr10(vuz41, vuz17) → error([])
new_sr12(vuz38, vuz17) → error([])
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_primDivNatS0(Zero) → Zero
new_primDivNatS1 → Zero
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].
The following pairs can be oriented strictly and are deleted.
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Zero)), bc) → new_pr2F0G11(vuz52, vuz53, Zero, Succ(Zero), bc)
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Zero), ba) → new_pr2F3(vuz90, vuz88, new_sr(vuz88, vuz89, ba), ba)
new_pr2F0G10(vuz52, vuz53, Succ(Succ(Succ(vuz54000))), bc) → new_pr2F0G11(vuz52, vuz53, new_primDivNatS0(vuz54000), Succ(new_primDivNatS0(vuz54000)), bc)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Zero), bd) → new_pr2F3(vuz66, new_sr2(vuz65, bd), vuz64, bd)
The remaining pairs can at least be oriented weakly.
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
new_pr2F3(Succ(vuz840), vuz85, vuz86, bb) → new_pr2F0G1(vuz85, vuz86, vuz840, Succ(vuz840), bb)
new_pr2F0G11(vuz64, vuz65, vuz66, Zero, bd) → new_pr2F0G10(vuz64, new_sr3(vuz65, bd), Succ(vuz66), bd)
new_pr2F0G1(vuz88, vuz89, vuz90, Zero, ba) → new_pr2F0G10(new_sr0(vuz88, vuz89, ba), vuz88, Succ(vuz90), ba)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
Used ordering: Polynomial interpretation [25]:
POL(Float(x1, x2)) = 1 + x1 + x2
POL(Neg(x1)) = 0
POL(Pos(x1)) = 0
POL(Succ(x1)) = 1 + x1
POL(Zero) = 0
POL([]) = 0
POL(app(x1, x2)) = 1 + x2
POL(error(x1)) = 0
POL(new_pr2F0G1(x1, x2, x3, x4, x5)) = 1 + x3
POL(new_pr2F0G10(x1, x2, x3, x4)) = x3
POL(new_pr2F0G11(x1, x2, x3, x4, x5)) = 1 + x3
POL(new_pr2F3(x1, x2, x3, x4)) = x1
POL(new_primDivNatS0(x1)) = x1
POL(new_primDivNatS1) = 0
POL(new_primMulNat0(x1, x2)) = 0
POL(new_primPlusNat0(x1, x2)) = 0
POL(new_primPlusNat1(x1, x2)) = 0
POL(new_sr(x1, x2, x3)) = x1 + x2 + x3
POL(new_sr0(x1, x2, x3)) = x1 + x2
POL(new_sr10(x1, x2)) = x1
POL(new_sr11(x1, x2)) = 0
POL(new_sr12(x1, x2)) = x2
POL(new_sr13(x1, x2)) = x1 + x2
POL(new_sr2(x1, x2)) = 0
POL(new_sr3(x1, x2)) = x1 + x2
POL(new_sr4(x1, x2)) = 0
POL(new_sr5(x1)) = 1
POL(new_sr6(x1)) = 1
POL(new_sr7(x1)) = 0
POL(new_sr8(x1)) = 0
POL(new_sr9(x1, x2, x3)) = 0
POL(ty_Double) = 1
POL(ty_Float) = 1
POL(ty_Int) = 1
POL(ty_Integer) = 1
POL(ty_Ratio) = 0
The following usable rules [17] were oriented:
new_primDivNatS1 → Zero
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_primDivNatS0(Zero) → Zero
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
new_pr2F3(Succ(vuz840), vuz85, vuz86, bb) → new_pr2F0G1(vuz85, vuz86, vuz840, Succ(vuz840), bb)
new_pr2F0G11(vuz64, vuz65, vuz66, Zero, bd) → new_pr2F0G10(vuz64, new_sr3(vuz65, bd), Succ(vuz66), bd)
new_pr2F0G1(vuz88, vuz89, vuz90, Zero, ba) → new_pr2F0G10(new_sr0(vuz88, vuz89, ba), vuz88, Succ(vuz90), ba)
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr9(vuz13, vuz37, ca) → error([])
new_sr10(vuz41, vuz17) → error([])
new_sr12(vuz38, vuz17) → error([])
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_primDivNatS0(Zero) → Zero
new_primDivNatS1 → Zero
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 2 SCCs with 3 less nodes.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr9(vuz13, vuz37, ca) → error([])
new_sr10(vuz41, vuz17) → error([])
new_sr12(vuz38, vuz17) → error([])
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_primDivNatS0(Zero) → Zero
new_primDivNatS1 → Zero
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
R is empty.
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_pr2F0G11(vuz64, vuz65, vuz66, Succ(Succ(vuz6700)), bd) → new_pr2F0G11(vuz64, vuz65, vuz66, vuz6700, bd)
The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 >= 5
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
The TRS R consists of the following rules:
new_sr0(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr0(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr0(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
new_sr0(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr11(Pos(vuz400), Neg(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Pos(vuz170)) → Neg(new_primMulNat0(vuz400, vuz170))
new_sr11(Neg(vuz400), Neg(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_sr11(Pos(vuz400), Pos(vuz170)) → Pos(new_primMulNat0(vuz400, vuz170))
new_primMulNat0(Succ(vuz4000), Zero) → Zero
new_primMulNat0(Zero, Succ(vuz1700)) → Zero
new_primMulNat0(Succ(vuz4000), Succ(vuz1700)) → new_primPlusNat0(new_primMulNat0(vuz4000, Succ(vuz1700)), vuz1700)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(vuz500), vuz1700) → Succ(Succ(new_primPlusNat1(vuz500, vuz1700)))
new_primPlusNat0(Zero, vuz1700) → Succ(vuz1700)
new_primPlusNat1(Succ(vuz5000), Succ(vuz17000)) → Succ(Succ(new_primPlusNat1(vuz5000, vuz17000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Zero, Succ(vuz17000)) → Succ(vuz17000)
new_primPlusNat1(Succ(vuz5000), Zero) → Succ(vuz5000)
new_sr13(Float(vuz390, vuz391), Float(vuz170, vuz171)) → Float(new_sr11(vuz390, vuz170), new_sr11(vuz391, vuz171))
new_sr9(vuz13, vuz37, ca) → error([])
new_sr10(vuz41, vuz17) → error([])
new_sr12(vuz38, vuz17) → error([])
new_primDivNatS0(Succ(Succ(vuz5400000))) → Succ(new_primDivNatS0(vuz5400000))
new_primDivNatS0(Succ(Zero)) → Succ(new_primDivNatS1)
new_primDivNatS0(Zero) → Zero
new_primDivNatS1 → Zero
new_sr3(vuz65, ty_Float) → new_sr6(vuz65)
new_sr3(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr3(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr3(vuz65, ty_Double) → new_sr8(vuz65)
new_sr3(vuz65, ty_Int) → new_sr7(vuz65)
new_sr7(vuz6) → new_sr11(vuz6, vuz6)
new_sr8(vuz6) → new_sr10(vuz6, vuz6)
new_sr4(vuz6, bf) → new_sr9(vuz6, vuz6, bf)
new_sr5(vuz6) → new_sr12(vuz6, vuz6)
new_sr6(vuz6) → new_sr13(vuz6, vuz6)
new_sr2(vuz65, ty_Integer) → new_sr5(vuz65)
new_sr2(vuz65, ty_Float) → new_sr6(vuz65)
new_sr2(vuz65, ty_Double) → new_sr8(vuz65)
new_sr2(vuz65, ty_Int) → new_sr7(vuz65)
new_sr2(vuz65, app(ty_Ratio, be)) → new_sr4(vuz65, be)
new_sr(vuz88, vuz89, ty_Double) → new_sr10(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Int) → new_sr11(vuz88, vuz89)
new_sr(vuz88, vuz89, app(ty_Ratio, bg)) → new_sr9(vuz88, vuz89, bg)
new_sr(vuz88, vuz89, ty_Integer) → new_sr12(vuz88, vuz89)
new_sr(vuz88, vuz89, ty_Float) → new_sr13(vuz88, vuz89)
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
R is empty.
The set Q consists of the following terms:
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.
new_sr2(x0, ty_Float)
new_sr0(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primMulNat0(Succ(x0), Zero)
new_primMulNat0(Zero, Zero)
new_sr12(x0, x1)
new_primDivNatS1
new_sr3(x0, app(ty_Ratio, x1))
new_sr3(x0, ty_Float)
new_sr11(Neg(x0), Neg(x1))
new_primPlusNat1(Zero, Zero)
new_sr(x0, x1, ty_Float)
new_sr7(x0)
new_sr0(x0, x1, ty_Integer)
new_sr0(x0, x1, app(ty_Ratio, x2))
new_sr(x0, x1, ty_Int)
new_sr6(x0)
new_sr(x0, x1, ty_Double)
new_sr0(x0, x1, ty_Double)
new_sr9(x0, x1, x2)
new_sr2(x0, ty_Double)
new_sr8(x0)
new_sr(x0, x1, ty_Integer)
new_sr11(Pos(x0), Pos(x1))
new_sr3(x0, ty_Double)
new_primPlusNat1(Succ(x0), Zero)
new_sr3(x0, ty_Int)
new_sr13(Float(x0, x1), Float(x2, x3))
new_sr3(x0, ty_Integer)
new_primDivNatS0(Succ(Succ(x0)))
new_sr11(Pos(x0), Neg(x1))
new_sr11(Neg(x0), Pos(x1))
new_sr2(x0, ty_Integer)
new_primDivNatS0(Zero)
new_primDivNatS0(Succ(Zero))
new_primPlusNat0(Succ(x0), x1)
new_sr2(x0, app(ty_Ratio, x1))
new_sr4(x0, x1)
new_sr5(x0)
new_sr(x0, x1, app(ty_Ratio, x2))
new_primPlusNat1(Zero, Succ(x0))
new_primPlusNat0(Zero, x0)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMulNat0(Zero, Succ(x0))
new_sr10(x0, x1)
new_sr0(x0, x1, ty_Float)
new_sr2(x0, ty_Int)
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_pr2F0G1(vuz88, vuz89, vuz90, Succ(Succ(vuz9100)), ba) → new_pr2F0G1(vuz88, vuz89, vuz90, vuz9100, ba)
The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 >= 5
↳ HASKELL
↳ IFR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ Narrow
Q DP problem:
The TRS P consists of the following rules:
new_pr2F0G13(vuz6, vuz7, Succ(Succ(vuz800)), ba) → new_pr2F0G13(vuz6, vuz7, vuz800, ba)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_pr2F0G13(vuz6, vuz7, Succ(Succ(vuz800)), ba) → new_pr2F0G13(vuz6, vuz7, vuz800, ba)
The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4
Haskell To QDPs